/// @brief 加密指定的vpl文件并生成对应的密钥
/// @param vpl_source 未加密的vpl路径
/// @param vpl_dest 生成加密后的vpl路径
/// @param key_buffer  密钥
/// @param encrypt_script_path 生成的对应cscheme加密脚本 [可为nullptr]
/// @return 操作是否成功
bool __stdcall Encrypt_VPL_File(const char *vpl_source, const char *vpl_dest, char *key_buffer, const char *encrypt_script_path);

/// @brief 根据指定的密钥还原vpl文件
/// @param vpl_source 加密过的vpl文件
/// @param vpl_dest 还原的vpl文件输出路径
/// @param key_buffer 密钥
/// @return 操作是否成功
bool __stdcall Decrypt_VPL_File(const char *vpl_source, const char *vpl_dest, const char *key_buffer);

/// @brief 将密钥逆向或导出对应的cscheme解密脚本
/// @param key_buffer 密钥
/// @param decrypt_script_path 生成的对应cscheme解密脚本 [可为nullptr]
/// @param key_dest 逆向的密钥 [可为nullptr]
/// @return 操作是否成功
bool __stdcall Decrypt_Key(const char *key_buffer, const char *decrypt_script_path, char *key_dest);

/// @brief 用指定的密钥加密vxl文件
/// @param key_buffer 密钥
/// @param vxl_source 未加密的vxl文件
/// @param vxl_dest 加密后的vxl文件输出路径
/// @return 操作是否成功
bool __stdcall Encrypt_VXL(const char *key_buffer, const char *vxl_source, const char *vxl_dest);

/// @brief 用指定的密钥解密vxl文件
/// @param key_buffer 密钥
/// @param vxl_source 加密后的vxl文件
/// @param vxl_dest 解密后的vxl文件输出路径
/// @return 操作是否成功
bool __stdcall Decrypt_VXL(const char *key_buffer, const char *vxl_source, const char *vxl_dest);
